import _md5 from 'md5'
import { hasOwn, isString } from './helpers'

/**
 * md5 加密文本
 * @param text 要加密的文本
 * @returns
 */
export function md5String(text: string): string {
  return _md5(text)
}

/**
 * md5 加密object，为object每个属性或指定属性加密
 * @param text 要加密的文本
 * @returns
 */
export function md5Object<T>(obj: any, key?: string): T {
  if (key) {
    if (hasOwn(obj, key) && isString(obj[key]) && obj[key] !== '') {
      obj[key] = _md5(obj[key])
    }
  } else {
    Object.keys(obj).forEach((key) => {
      if (isString(obj[key]) && obj[key] !== '') {
        obj[key] = _md5(obj[key])
      }
    })
  }

  return obj
}
